﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using DataAccessComponents;
using System.Collections.ObjectModel;
namespace BusinessLogicLayer
{
    /// <summary>
    /// Klasa odpowiadająca warstwie biznesowej dostepu do tabeli Adres
    /// </summary>
    public class AdresBL : IBusinessLogicLayer<Adres>
    {
        private DbOperations dal = new DbOperations();

        /// <summary>
        /// Funkcja dodawająca adres do bazy danych
        /// </summary>
        /// <param name="objAdres">Obiekt Adres</param>
        /// <returns></returns>
        public int dodaj(Adres objAdres)
        {
            return dal.dodajAdres(objAdres);
        }

        public int sprawdzCzyIstnieje(Adres objAdres)
        {
            ObservableCollection<Adres> listaAdresow = new ObservableCollection<Adres>();
            listaAdresow = this.pobierzListe();
            foreach (Adres adres in listaAdresow)
            {
                if (objAdres.Equals(adres))
                {
                    return adres.Id_adres;
                }
            }
            return 0;
        }
        /// <summary>
        /// Funkcja usuwająca adres z bazy danych
        /// </summary>
        /// <param name="idusun">Id adresu do usunięcia</param>
        public void usun(int idusun)
        {
            dal.usunAdres(idusun);
        }

        /// <summary>
        /// Funkcja akutualizująca adres w bazie danych
        /// </summary>
        /// <param name="objAktualizuj">Obiekt adres do zawierający inforamacje do aktualizacji</param>
        public void aktualizuj(Adres objAktualizuj)
        {
            dal.aktualizujAdres(objAktualizuj);
        }

        /// <summary>
        /// Pobiera adres na podstawie id adres
        /// </summary>
        /// <param name="idpobierz">Id adres</param>
        /// <returns>Obiekt Adres</returns>
        public Adres pobierz(int idpobierz)
        {
            return dal.pobierzAdres(idpobierz);
        }        

        public System.Collections.ObjectModel.ObservableCollection<Adres> pobierzListe()
        {
            return dal.pobierzListeAdres();
        }

        public bool aktualizujListe(System.Collections.ObjectModel.ObservableCollection<Adres> lista)
        {
            throw new NotImplementedException();
        }

        public bool usun(System.Collections.ObjectModel.ObservableCollection<Adres> lista)
        {
            throw new NotImplementedException();
        }
    }
}
